In an interest aware communication network, the participating network nodes generally broadcast their interest in a topic by way of publication of their topics of interest to other nodes. In return, other nodes that are interested in a published topic may subscribe to that topic or provide messages related to that topic to a node with a corresponding interest. This communication paradigm is often referred to as publish-subscribe (pub-sub) broadcast or multicast (e.g., data cast) network.
A publisher node is a node that publishes a message about a topic on logical channels associated with identified topics. A subscriber node is a node that is interested in a message published on a certain topic and thus subscribes to the topic and receives messages published on that topic. Publishers and subscribers are not directly linked or associated with each other in this paradigm because they don't need to know the network address of one another. Instead, a topic identifier is associated with each topic and that association is preserved in a centralized system that mediates between the publishers and subscribers.
Such centralized systems rely on the discovery and distribution of topic-group memberships for each node in the network. A topic-group membership refers to a group of nodes that subscribe to a certain topic. Some systems may have thousands of nodes, thousands of topics and thousands of messages generated on those topics by said nodes. In such large systems, a great multitude of different topics are used for pub-sub communication, system monitoring and control, as well as other processes.
Each pub-sub process may be interested in a different subset of the available topics. Because publishing or subscribing to a topic indicates “interest” in that topic, a service that delivers the identity of subscribers (or publishers, or both) to a topic is called an interest-aware membership service. The interest aware membership service provides to the application using it the interest of nodes in the system. The interest, when presented to the application, may be represented as a set of topic names.
In some implementations, a membership service may represent the interest of a node as a list of string identifiers. This can be highly inefficient, however, where topic names are generally expressed as strings that can be quite lengthy. It is not uncommon, for example, that a topic name is a few hundred characters long. Especially in a decentralized data-center the large number of nodes and topics, combined with long topic names consume excessive communication bandwidth and memory. That is, a substantial amount of overhead is generated each time the topic names for thousands of nodes are interchanged, and particularly when a new topic is generated or when the interest of a node in a topic changes.
To remedy the above, a central directory service (i.e., registry) may be utilized to track the topic names and provide an index for each topic name where the index is used to associate the numerous topic names with thousands of nodes with an interest in said topic. Interest aware dissemination algorithms may be implemented using topic indices, and inverse lookup tables into the registry in order to link a topic index to a topic name A central registry is generally risky in case of a disaster (i.e., data recovery from a single point of failure is highly undesirable) and also poses the possibility of a performance bottleneck. Moreover, a centralized registry typically needs ongoing configuration and maintenance, thus generating additional administrative overhead.